@echo off
REM Docker 镜像构建和测试脚本 - Windows 版本
REM 用于验证 Windows 兼容性问题是否已解决

echo ==========================================
echo   Docker 镜像构建和测试脚本 - Windows 版本
echo ==========================================

REM 检查 Docker 是否已安装
docker --version >nul 2>&1
if %errorlevel% neq 0 (
    echo ❌ Docker 未安装，请先安装 Docker Desktop
    pause
    exit /b 1
)

REM 检查 Docker Compose 是否已安装
docker-compose --version >nul 2>&1
if %errorlevel% neq 0 (
    echo ❌ Docker Compose 未安装，请先安装 Docker Compose
    pause
    exit /b 1
)

echo ✅ Docker 和 Docker Compose 已安装

REM 停止现有容器
echo 🛑 停止现有容器...
docker-compose down

REM 清理旧镜像
echo 🧹 清理旧镜像...
docker-compose build --no-cache

REM 启动容器
echo 🚀 启动容器...
docker-compose up -d

REM 等待容器启动
echo ⏳ 等待容器启动（10秒）...
timeout /t 10 /nobreak >nul

REM 检查容器状态
echo 📊 检查容器状态...
docker-compose ps | findstr "Up" >nul
if %errorlevel% equ 0 (
    echo ✅ 容器已成功启动
) else (
    echo ❌ 容器启动失败
    echo 查看日志：
    docker-compose logs alpine-app
    pause
    exit /b 1
)

REM 测试 HTTP 服务
echo 🌐 测试 HTTP 服务...
curl -s http://localhost:8080 >nul 2>&1
if %errorlevel% equ 0 (
    echo ✅ HTTP 服务正常运行
) else (
    echo ❌ HTTP 服务无法访问（可能 curl 未安装）
)

REM 测试脚本文件是否正常
echo 📝 测试脚本文件...
docker-compose exec -T alpine-app ls -la /app/app.sh >nul 2>&1
if %errorlevel% equ 0 (
    echo ✅ 主脚本文件存在
) else (
    echo ❌ 主脚本文件不存在
)

REM 测试定时任务
echo ⏰ 测试定时任务...
docker-compose exec -T alpine-app sudo crontab -l >nul 2>&1
if %errorlevel% equ 0 (
    echo ✅ 定时任务配置正常
) else (
    echo ❌ 定时任务配置失败
)

REM 测试 Python 脚本
echo 🐍 测试 Python 脚本...
docker-compose exec -T alpine-app python3 --version >nul 2>&1
if %errorlevel% equ 0 (
    echo ✅ Python 环境正常
) else (
    echo ❌ Python 环境异常
)

REM 显示系统信息
echo 📋 系统信息：
docker-compose exec -T alpine-app uname -a
docker-compose exec -T alpine-app whoami
docker-compose exec -T alpine-app python3 --version

echo ==========================================
echo 🎉 测试完成！
echo.
echo 📝 有用的命令：
echo    查看日志: docker-compose logs -f alpine-app
echo    进入容器: docker-compose exec alpine-app bash
echo    停止容器: docker-compose down
echo    重新构建: docker-compose build --no-cache
echo ==========================================

pause 